/*
 * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
 * @Date: 2023-12-02 15:28:41
 * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
 * @LastEditTime: 2023-12-02 15:29:01
 * @FilePath: \every-little-progress\day 376\test.cc
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

// 1408. 数组中的字符串匹配
// https://leetcode.cn/problems/string-matching-in-an-array/description/
// 给你一个字符串数组 words ，数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。

// 如果你可以删除 words[j] 最左侧和/或最右侧的若干字符得到 words[i] ，那么字符串 words[i] 就是 words[j] 的一个子字符串。

 

// 示例 1：

// 输入：words = ["mass","as","hero","superhero"]
// 输出：["as","hero"]
// 解释："as" 是 "mass" 的子字符串，"hero" 是 "superhero" 的子字符串。
// ["hero","as"] 也是有效的答案。
// 示例 2：

// 输入：words = ["leetcode","et","code"]
// 输出：["et","code"]
// 解释："et" 和 "code" 都是 "leetcode" 的子字符串。
// 示例 3：

// 输入：words = ["blue","green","bu"]
// 输出：[]
 

// 提示：

// 1 <= words.length <= 100
// 1 <= words[i].length <= 30
// words[i] 仅包含小写英文字母。
// 题目数据 保证 每个 words[i] 都是独一无二的。


class Solution {
    bool is_child(const string& s1, const string& s2)
    {
        return s1.length() < s2.length() ? false : s1.find(s2) != string::npos;
    }
public:
    vector<string> stringMatching(vector<string>& words) {
        vector<string> match;
        for(int i = 0;i < words.size();++i)
        {
            for(int j = 0;j < words.size();++j)
            {
                if(j == i) continue;
                if(is_child(words[j], words[i]))
                {
                    match.push_back(words[i]);
                    break;
                }
            }
        }

        return match;
    }
};